home *** CD-ROM | disk | FTP | other *** search
- /*
- * File: DZMain.c
- *
- * Contents: Main entry point, main loop, initialize and exit code
- *
- * Copyright © 1996 Apple Computer, Inc.
- */
-
- #include <Dialogs.h>
- #include <Fonts.h>
- #include <Memory.h>
- #include <QuickDraw.h>
- #include <Types.h>
- #include <Windows.h>
-
- #include <QD3D.h>
-
- #include "DZDisplay.h"
- #include "DZDrone.h"
- #include "DZEvents.h"
- #include "DZGame.h"
- #include "DZInput.h"
- #include "DZMain.h"
- #include "DZMenu.h"
- #include "DZSound.h"
- #include "DZSpace.h"
-
-
- #ifdef APP_LOADS_SOUND_COMPONENT
- #include "S3Private.h"
- #endif
-
- void main(
- void);
-
- static void Init(
- void);
-
- static void Exit(
- void);
-
-
- static Boolean gAlive = false;
-
-
-
- /* =============================================================================
- * main
- *
- * Initializes, processes events, does the idle-time stuff, and exits.
- * ========================================================================== */
- void main(
- void)
- {
- Init();
-
- while (gAlive)
- {
- Events_Process();
-
- if (gAlive && Display_IsActive() && Game_GetState() == kGameState_Playing)
- {
- Game_Process();
- Display_DrawContents();
- }
- }
-
- Exit();
- }
-
-
- /* =============================================================================
- * Main_LastRoundup (external)
- *
- * Requests the main event loop to gracefully exit.
- * ========================================================================== */
- void Main_LastRoundup(
- void)
- {
- gAlive = false;
- }
-
-
- /* =============================================================================
- * Init (internal)
- *
- * Initialization of toolbox and our stuff.
- * ========================================================================== */
- void Init(
- void)
- {
- // Initialize the toolbox
- MaxApplZone();
- MoreMasters();
-
- InitGraf(&qd.thePort);
- InitFonts();
- InitWindows();
- InitDialogs(NULL);
- InitCursor();
- InitMenus();
- TEInit();
-
- qd.randSeed = TickCount();
-
- // Initialize QD3D
- Q3Initialize();
-
- // Should we load S3Localization?
- #ifdef APP_LOADS_SOUND_COMPONENT
- {
- ComponentDescription filterDesc;
- Handle filterNameHdl, infoHdl;
-
- // Register (or find) our components
- #ifdef REAL_3D_INSTALL
- filterDesc.componentType = kSoundEffectsType;
- #else
- filterDesc.componentType = 'sdec';
- #endif
- filterDesc.componentSubType = kSSpLocalizationSubType;
- filterDesc.componentManufacturer = kAppleManufacturer;
- filterDesc.componentFlags = 0L;
- filterDesc.componentFlagsMask = 0L;
-
- filterNameHdl = NewHandle (sizeof (Str255));
- BlockMove ((Ptr)"\pS3Localization", (Ptr)(*filterNameHdl), sizeof (Str255));
-
- infoHdl = NewHandle (sizeof (Str255));
- BlockMove ((Ptr)"\pThis component provides 3D Audio.", (Ptr)(*infoHdl), sizeof (Str255));
-
- // Register the Filter component
- RegisterComponent (&filterDesc, NewComponentRoutineProc(SoundComponentProc), kRegisterGlobally,
- filterNameHdl, infoHdl, nil);
- }
- #endif
-
- // Initialize our modules
- Menu_Init();
- Sound_Init();
- Events_Init();
- Display_Init();
- Drone_Init();
- Space_Init();
- Input_Init();
- Game_Init();
-
- // We're off...
- gAlive = true;
- }
-
-
- /* =============================================================================
- * Exit (internal)
- *
- * Cleans up before exit.
- * ========================================================================== */
- void Exit(
- void)
- {
- // Exit our modules
- Game_Exit();
- Input_Exit();
- Space_Exit();
- Drone_Exit();
- Display_Exit();
- Events_Exit();
- Sound_Exit();
- Menu_Exit();
-
- // Exit QD3D
- Q3Exit();
- }
-
-